import {initMixin} from './init'
import { initLifeCycle } from './lifecycle'
import Watcher, { nextTick } from './observe/watcher'
import { initGlobalAPI } from "./gloablAPI";
//将所有数据耦合在一起
function Vue(options){ // options就是用户的选项
    this._init(options)

}
Vue.prototype.$nextTick = nextTick
initMixin(Vue)
initLifeCycle(Vue)
initGlobalAPI(Vue)



// 最终调用的都是这个方法
Vue.prototype.$watch = function (exprOrFn, cb) {
    // firstname
    // ()=>vm.firstname

    // firstname的值变化了 直接执行cb函数即可
    new Watcher(this,exprOrFn,{user:true},cb)
}



export default Vue